package com.ruoyi.framework.web.service;

/**
 * 微信小程序登录服务接口
 *
 * @author ruoyi
 */
public interface WechatLoginService {
    
    /**
     * 微信小程序登录
     *
     * @param code 小程序授权码
     * @return 登录成功返回token(String)，需要绑定返回用户信息(WechatUserInfo)
     */
    Object wechatMiniLogin(String code);
    
    /**
     * 绑定微信账号
     *
     * @param openid 微信OpenID
     * @param phoneNumber 手机号
     * @return 登录token
     */
    String bindWechatAccount(String openid, String phoneNumber);
    
    /**
     * 强制解绑并重新绑定
     *
     * @param openid 微信OpenID
     * @param phoneNumber 手机号
     * @return 登录token
     */
    String forceRebindWechat(String openid, String phoneNumber);
    
    /**
     * 解绑微信账号
     *
     * @param userId 用户ID
     */
    void unbindWechatAccount(Long userId);
    
    /**
     * 检查微信绑定状态
     *
     * @param userId 用户ID
     * @return 是否已绑定微信
     */
    boolean isWechatBound(Long userId);
}
